import { Component } from "react";
import { Route } from "react-router-dom";
import { getToken } from "utils/storage";

export default class AuthRoute extends Component {
  state = {};

  render() {
    // 1 使用 ...解构剩余属性, 类似函数的剩余参数
    const { path, component: Comp, ...restProps } = this.props;
    // console.log(restProps);
    return (
      <Route
        // 2 将剩余属性, 全部分配给Route组件即可
        {...restProps}
        path={path}
        // 1 将componet属性改为render写法
        //  component={Layout}
        render={(props) => {
          // render函数一定要有放回值, 返回值是一个组件
          // 2. 把原本的history等props设置给放回的组件
          // 鉴权
          if (getToken()) {
            return <Comp {...props}></Comp>;
          } else {
            props.history.push("/login");
          }
        }}
      ></Route>
    );
  }
}
